/*
	This file is part of the OdinMS Maple Story Server
    Copyright (C) 2008 Patrick Huy <patrick.huy@frz.cc> 
                       Matthias Butz <matze@odinms.de>
                       Jan Christian Meyer <vimes@odinms.de>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License version 3
    as published by the Free Software Foundation. You may not use, modify
    or distribute this program under any other version of the
    GNU Affero General Public License.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

package org.snow.odinms;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

public enum SendPacketOpcode implements WritableIntValueHolder {

        //中國伺服器新增包
        CHOOSE_GENDER,
        LICENSE_RESULT,
        LOGIN_SUCC,


        // General
        PING,
        AUTH_RESPONSE,
        LOGIN_STATUS,
        SEND_LINK,
        LOGIN_SECOND,
        SERVERSTATUS,
        GENDER_SET,
        PIN_OPERATION,
        PIN_ASSIGNED,
        ALL_CHARLIST,
        SERVERLIST,
        CHARLIST,
        SERVER_IP,
        CHAR_NAME_RESPONSE,
        ADD_NEW_CHAR_ENTRY,
        DELETE_CHAR_RESPONSE,
        CHANGE_CHANNEL,
        CS_USE,
        RELOG_RESPONSE,
        REGISTER_PIC_RESPONSE,
        ENABLE_RECOMMENDED,
        SEND_RECOMMENDED,
        PART_TIME,
        CHANNEL_SELECTED,
        EXTRA_CHAR_INFO,//23
        SPECIAL_CREATION,//24
        SECONDPW_ERROR,//25
        CHANGE_BACKGROUND,
        // Channel
        INVENTORY_OPERATION,//26
        INVENTORY_GROW,//27
        UPDATE_STATS,//28
        GIVE_BUFF,//29
        CANCEL_BUFF,//2A
        TEMP_STATS,//2B
        TEMP_STATS_RESET,//2C
        UPDATE_SKILLS,//2D
        UPDATE_STOLEN_SKILLS,//2E
        TARGET_SKILL,//2F
        FAME_RESPONSE,
        SHOW_STATUS_INFO,//34
        FULL_CLIENT_DOWNLOAD,
        SHOW_NOTES,
        TROCK_LOCATIONS,
        LIE_DETECTOR,//37
        REPORT_RESPONSE,//39
        REPORT_TIME,//3A
        REPORT_STATUS,//3B
        UPDATE_MOUNT,//3E
        SHOW_QUEST_COMPLETION,//3F
        SEND_TITLE_BOX,//3F
        USE_SKILL_BOOK,//40
        SP_RESET,//41
        AP_RESET,//42
        DISTRIBUTE_ITEM,//43
        EXPAND_CHARACTER_SLOTS,//44
        FINISH_GATHER,//v145
        FINISH_SORT,//v145
        EXP_POTION,
        REPORT_RESULT,//v145
        TRADE_LIMIT,//v145
        UPDATE_GENDER,//50
        BBS_OPERATION,//51
        CHAR_INFO,//v143
        PARTY_OPERATION,//55
        MEMBER_SEARCH,//5A
        PARTY_SEARCH,//5A
        BOOK_INFO,//5A
        CODEX_INFO_RESPONSE,//5C
        EXPEDITION_OPERATION,//5D
        BUDDYLIST,//5d
        GUILD_OPERATION,//5F
        ALLIANCE_OPERATION,//60
        SPAWN_PORTAL,//61
        MECH_PORTAL,//63
        ECHO_MESSAGE,//64
        SERVERMESSAGE,//66
        ITEM_OBTAIN,//68
        PIGMI_REWARD,//6C
        OWL_OF_MINERVA,//6D
        OWL_RESULT,//6E
        ENGAGE_REQUEST,//6F
        ENGAGE_RESULT,//70
        WEDDING_GIFT,//71
        WEDDING_MAP_TRANSFER,//72
        USE_CASH_PET_FOOD,//74
        YELLOW_CHAT,//78
        SHOP_DISCOUNT,//76
        CATCH_MOB,//77
        MAKE_PLAYER_NPC,//78
        PLAYER_NPC,//79
        DISABLE_NPC,//7A
        GET_CARD,//7B
        CARD_UNK,//new143
        CARD_SET,//7D
        BOOK_STATS,//7E
        UPDATE_CODEX,//7F
        CARD_DROPS,//80
        FAMILIAR_INFO,//81
        CHANGE_HOUR,//83
        RESET_MINIMAP,//87
        CONSULT_UPDATE,//88
        CLASS_UPDATE,//89
        WEB_BOARD_UPDATE,//8A
        SESSION_VALUE,//8B
        MAP_VALUE,//v145
        EXP_BONUS,//v145
        PARTY_VALUE,//v145
        POTION_BONUS,//8D
        SEND_PEDIGREE,//91
        OPEN_FAMILY,//92
        FAMILY_MESSAGE,//93
        FAMILY_INVITE,//94
        FAMILY_JUNIOR,//95
        SENIOR_MESSAGE,//96
        FAMILY,//97
        REP_INCREASE,//95
        FAMILY_LOGGEDIN,//96
        FAMILY_BUFF,//97
        FAMILY_USE_REQUEST,//98
        LEVEL_UPDATE,//99
        MARRIAGE_UPDATE,//9A
        JOB_UPDATE,//9B
        MAPLE_TV_MSG,
        LUCKY_LUCKY_MONSTORY,//new v147
        AVATAR_MEGA_RESULT,//FF
        AVATAR_MEGA,//100
        AVATAR_MEGA_REMOVE,//101
        POPUP2,
        CANCEL_NAME_CHANGE,
        CANCEL_WORLD_TRANSFER,
        CLOSE_HIRED_MERCHANT,//A0
        GM_POLICE,//A1
        TREASURE_BOX,//A2
        NEW_YEAR_CARD,//A3
        RANDOM_MORPH,//A4
        CANCEL_NAME_CHANGE_2,//A9
        SLOT_UPDATE,//AC
        FOLLOW_REQUEST,//AD
        TOP_MSG,//AE
        NEW_TOP_MSG,//new148
        MID_MSG,
        CLEAR_MID_MSG,
        SPECIAL_MSG,
        MAPLE_ADMIN_MSG,
        CAKE_VS_PIE_MSG,
        GM_STORY_BOARD,
        INVENTORY_FULL,//v145
        ZERO_STATS,
        UPDATE_JAGUAR,
        YOUR_INFORMATION,
        FIND_FRIEND,
        VISITOR,
        PINKBEAN_CHOCO,
        PAM_SONG,
        AUTO_CC_MSG,
        DISALLOW_DELIVERY_QUEST,//bb
        ULTIMATE_EXPLORER,//BC
        SPECIAL_STAT, //also profession_info //BD
        UPDATE_IMP_TIME,//BE
        ITEM_POT,//BF
        MULUNG_MESSAGE,//C2
        GIVE_CHARACTER_SKILL,//C3
        MULUNG_DOJO_RANKING,//C8
        UPDATE_INNER_ABILITY,//CD
        EQUIP_STOLEN_SKILL,//CE
        REPLACE_SKILLS,//CE
        INNER_ABILITY_MSG,//CF
        ENABLE_INNER_ABILITY,//D0
        DISABLE_INNER_ABILITY,//D1
        UPDATE_HONOUR,//D2
        AZWAN_UNKNOWN,//D3 //probably circulator shit?
        AZWAN_RESULT,//D4
        AZWAN_KILLED,//D5
        CIRCULATOR_ON_LEVEL,//D6
        SILENT_CRUSADE_MSG,//D7
        SILENT_CRUSADE_SHOP,//D8
        CASSANDRAS_COLLECTION,//new v145
        MAPLE_POINT,//E6
        SET_OBJECT_STATE,//E8
        POPUP,//E9
        MINIMAP_ARROW,//ED
        UNLOCK_CHARGE_SKILL,//F2
        LOCK_CHARGE_SKILL,//F3
        CANDY_RANKING,//F8
        ATTENDANCE,//102
        MESSENGER_OPEN,//103
        EVENT_CROWN,
        RANDOM_RESPONSE,
        MAGIC_WHEEL,//125
        REWARD,//126
        SKILL_MACRO,//127
        WARP_TO_MAP,
        FARM_OPEN,//129
        MTS_OPEN,//12A
        CS_OPEN,//12B
        REMOVE_BG_LAYER,//12E
        SET_MAP_OBJECT_VISIBLE,//12F
        RESET_SCREEN,//130
        MAP_BLOCKED,//131
        SERVER_BLOCKED,//132
        PARTY_BLOCKED,//133
        SHOW_EQUIP_EFFECT,//134
        MULTICHAT,//136
        WHISPER,//135
        SPOUSE_CHAT,//137
        BOSS_ENV,//13A
        MOVE_ENV,//13B
        UPDATE_ENV,//13C
        MAP_EFFECT,//13E
        CASH_SONG,//13F
        GM_EFFECT,//141
        OX_QUIZ,//142
        GMEVENT_INSTRUCTIONS,//143
        CLOCK,//144
        BOAT_MOVE,//126
        BOAT_STATE,//128
        STOP_CLOCK,//12D
        ARIANT_SCOREBOARD,//12F
        PYRAMID_UPDATE,//131
        PYRAMID_RESULT,//132
        QUICK_SLOT,//153
        MOVE_PLATFORM,//153
        PVP_INFO,//154
        PYRAMID_KILL_COUNT,//155
        DIRECTION_STATUS,//159
        GAIN_FORCE,//15A
        ACHIEVEMENT_RATIO,//15B
        QUICK_MOVE,//15C
        SPAWN_PLAYER,//167
        REMOVE_PLAYER_FROM_MAP,//168
        CHATTEXT,//169
        CHATTEXT_1,//16A
        CHALKBOARD,//16B
        UPDATE_CHAR_BOX,//16C
        SHOW_CONSUME_EFFECT,//16D
        SHOW_SCROLL_EFFECT,//16E
        SHOW_MAGNIFYING_EFFECT,//16E
        SHOW_POTENTIAL_RESET,//16F
        SHOW_FIREWORKS_EFFECT,//170
        SHOW_NEBULITE_EFFECT,//171
        SHOW_FUSION_EFFECT,//172
        PVP_ATTACK,
        PVP_MIST,
        PVP_COOL,
        TESLA_TRIANGLE,//0x15C
        FOLLOW_EFFECT,
        SHOW_PQ_REWARD,
        CRAFT_EFFECT,//15F
        CRAFT_COMPLETE,//160
        HARVESTED,//161
        PLAYER_DAMAGED,
        NETT_PYRAMID,
        SET_PHASE,
        PAMS_SONG,
        SPAWN_PET,//16B
        SPAWN_PET_2,//16D
        MOVE_PET,//16E
        PET_CHAT,//16F
        PET_NAMECHANGE,//170
        PET_EXCEPTION_LIST,//171
        PET_COLOR,//172
        PET_SIZE,//173
        PET_COMMAND,//174
        DRAGON_SPAWN,//175
        INNER_ABILITY_RESET_MSG,//173
        DRAGON_MOVE,//176
        DRAGON_REMOVE,//177
        ANDROID_SPAWN,//178
        ANDROID_MOVE,//179
        ANDROID_EMOTION,//17A
        ANDROID_UPDATE,//17B
        ANDROID_DEACTIVATED, //17C 
        SPAWN_FAMILIAR,//183
        MOVE_FAMILIAR,//184
        TOUCH_FAMILIAR,//185
        ATTACK_FAMILIAR,//186
        RENAME_FAMILIAR,//187
        SPAWN_FAMILIAR_2,//188
        UPDATE_FAMILIAR,//189
        HAKU_CHANGE_1,//18A
        HAKU_CHANGE_0,//18B
        HAKU_MOVE,//18B
        HAKU_UNK,//18C
        HAKU_CHANGE,//18D
        SPAWN_HAKU,//190
        MOVE_PLAYER,//193
        CLOSE_RANGE_ATTACK,//1BA // was 0x1BA
        RANGED_ATTACK,//1BB // was 0x1BB
        MAGIC_ATTACK,//1BE // PAST 0X1BC
        ENERGY_ATTACK,//198
        SKILL_EFFECT,//199 // past 0x1BE
        MOVE_ATTACK,//19A
        CANCEL_SKILL_EFFECT,//19B
        DAMAGE_PLAYER,//19C
        FACIAL_EXPRESSION,//19D
        SHOW_EFFECT,//19F
        SHOW_TITLE,//1A1
        ANGELIC_CHANGE,//1A2
        SHOW_CHAIR,//1A5
        UPDATE_CHAR_LOOK,//1A6
        SHOW_FOREIGN_EFFECT,//1A7
        GIVE_FOREIGN_BUFF,//1A8
        CANCEL_FOREIGN_BUFF,//1A9
        UPDATE_PARTYMEMBER_HP,//1AA
        LOAD_GUILD_NAME,//1AB
        LOAD_GUILD_ICON,//1AC
        LOAD_TEAM,//1AD
        SHOW_HARVEST,//1AE
        PVP_HP,//1B0
        CANCEL_CHAIR,//1E6
        DIRECTION_FACIAL_EXPRESSION,//1E7
        MOVE_SCREEN,//1E8
        SHOW_SPECIAL_EFFECT,//1E9
        CURRENT_MAP_WARP,//1EA
        MESOBAG_SUCCESS,//1EC
        MESOBAG_FAILURE,//1EA
        R_MESOBAG_SUCCESS,//1EB
        R_MESOBAG_FAILURE,//1EC
        MAP_FADE,//1F0
        MAP_FADE_FORCE,//1F1
        UPDATE_QUEST_INFO,//1F2
        HP_DECREASE,//1F3
        PLAYER_HINT,//1F5
        PLAY_EVENT_SOUND,//1F6
        PLAY_MINIGAME_SOUND,//1F7
        MAKER_SKILL,//1F8
        OPEN_UI,//1FB
        OPEN_UI_OPTION,//1FD
        INTRO_LOCK,//1FE
        INTRO_ENABLE_UI,//1FF
        INTRO_DISABLE_UI,//200
        SUMMON_HINT,//201
        SUMMON_HINT_MSG,//202
        ARAN_COMBO,//203
        ARAN_COMBO_RECHARGE,//204
        RANDOM_EMOTION,//205
        RADIO_SCHEDULE,//206
        OPEN_SKILL_GUIDE,//207
        GAME_MSG,//209
        GAME_MESSAGE,//20A
        BUFF_ZONE_EFFECT,//20C
        GO_CASHSHOP_SN,//20D
        DAMAGE_METER,//20E
        TIME_BOMB_ATTACK,//20F
        FOLLOW_MOVE,//20D
        FOLLOW_MSG,//211
        AP_SP_EVENT,//215
        QUEST_GUIDE_NPC,//214
        REGISTER_FAMILIAR,//218
        FAMILIAR_MESSAGE,//219
        CREATE_ULTIMATE,//21A
        HARVEST_MESSAGE,//21C
        SHOW_MAP_NAME,
        OPEN_BAG,//21D
        DRAGON_BLINK,//21E
        PVP_ICEGAGE,//21F
        DIRECTION_INFO,//223
        REISSUE_MEDAL,//224
        PLAY_MOVIE,//227
        CAKE_VS_PIE,//225
        PHANTOM_CARD,//226
        LUMINOUS_COMBO,//229
        MOVE_SCREEN_X,//199
        MOVE_SCREEN_DOWN,//19A
        CAKE_PIE_INSTRUMENTS,//19B
        SEALED_BOX,//212
        COOLDOWN,//263
        SPAWN_SUMMON,//265
        REMOVE_SUMMON,//266
        MOVE_SUMMON,//267
        SUMMON_ATTACK,//268
        PVP_SUMMON,//269
        SUMMON_SKILL,//26A
        SUMMON_SKILL_2,
        SUMMON_DELAY,
        DAMAGE_SUMMON,
        SPAWN_MONSTER,//277
        KILL_MONSTER,//278
        SPAWN_MONSTER_CONTROL,//279
        MOVE_MONSTER,//27B
        MOVE_MONSTER_RESPONSE,//27C
        APPLY_MONSTER_STATUS,//27E
        CANCEL_MONSTER_STATUS,//27F
        MONSTER_SKILL,//281
        DAMAGE_MONSTER,//282
        SKILL_EFFECT_MOB,//283
        TELE_MONSTER,
        MONSTER_CRC_CHANGE,//285
        SHOW_MONSTER_HP,//286
        SHOW_MAGNET,//287
        ITEM_EFFECT_MOB,//288
        CATCH_MONSTER,
        MONSTER_PROPERTIES,
        REMOVE_TALK_MONSTER,
        TALK_MONSTER,
        CYGNUS_ATTACK,
        MOB_TO_MOB_DAMAGE,
        MONSTER_RESIST,
        AZWAN_MOB_TO_MOB_DAMAGE,
        AZWAN_SPAWN_MONSTER,
        AZWAN_KILL_MONSTER,
        AZWAN_SPAWN_MONSTER_CONTROL,
        SPAWN_NPC,//2A2
        REMOVE_NPC,//2A3
        SPAWN_NPC_REQUEST_CONTROLLER,//2A5
        NPC_ACTION,//2A6
        NPC_TOGGLE_VISIBLE,//2AA
        INITIAL_QUIZ,//2AC
        NPC_UPDATE_LIMITED_INFO,//2AD
        NPC_SET_SPECIAL_ACTION,//2AE
        NPC_SCRIPTABLE,//2AF
        RED_LEAF_HIGH,//2B0
        SPAWN_HIRED_MERCHANT,//2B1
        DESTROY_HIRED_MERCHANT,//2B2
        UPDATE_HIRED_MERCHANT,//2B3
        DROP_ITEM_FROM_MAPOBJECT,//2B4
        REMOVE_ITEM_FROM_MAP,//2B6
        SPAWN_KITE_ERROR,//2B7
        SPAWN_KITE,
        DESTROY_KITE,
        SPAWN_MIST,
        REMOVE_MIST,
        SPAWN_DOOR,
        REMOVE_DOOR,
        MECH_DOOR_SPAWN,
        MECH_DOOR_REMOVE,
        REACTOR_HIT,//2C0
        REACTOR_MOVE,//2C1
        REACTOR_SPAWN,//2C2
        REACTOR_DESTROY,//2C4
        SPAWN_EXTRACTOR,//2C5
        REMOVE_EXTRACTOR,//2C6
        ROLL_SNOWBALL,//2C7
        HIT_SNOWBALL,
        SNOWBALL_MESSAGE,
        LEFT_KNOCK_BACK,
        HIT_COCONUT,
        COCONUT_SCORE,
        MOVE_HEALER,
        PULLEY_STATE,
        MONSTER_CARNIVAL_START,//2C9
        MONSTER_CARNIVAL_OBTAINED_CP,//2CA
        MONSTER_CARNIVAL_STATS,////2CB
        MONSTER_CARNIVAL_SUMMON,//2CD
        MONSTER_CARNIVAL_MESSAGE,//2CE
        MONSTER_CARNIVAL_DIED,//2CF
        MONSTER_CARNIVAL_LEAVE,//2D0
        MONSTER_CARNIVAL_RESULT,//2D1
        MONSTER_CARNIVAL_RANKING,//2D8
        ARIANT_SCORE_UPDATE,
        SHEEP_RANCH_INFO,
        SHEEP_RANCH_CLOTHES,//0x302
        WITCH_TOWER,//0x303
        EXPEDITION_CHALLENGE,//0x304
        ZAKUM_SHRINE,
        CHAOS_ZAKUM_SHRINE,
        PVP_TYPE,
        PVP_TRANSFORM,
        PVP_DETAILS,
        PVP_ENABLED,
        PVP_SCORE,
        PVP_RESULT,
        PVP_TEAM,
        PVP_SCOREBOARD,
        PVP_POINTS,
        PVP_KILLED,
        PVP_MODE,
        PVP_ICEKNIGHT,//
        HORNTAIL_SHRINE,
        CAPTURE_FLAGS,
        CAPTURE_POSITION,
        CAPTURE_RESET,
        PINK_ZAKUM_SHRINE,
        NPC_TALK,//0x33D
        OPEN_NPC_SHOP,//33E
        CONFIRM_SHOP_TRANSACTION,//33F
        OPEN_STORAGE,//34A
        MERCH_ITEM_MSG,//2F2
        MERCH_ITEM_STORE,//2F3
        RPS_GAME,//2F4
        MESSENGER,////2F5
        PLAYER_INTERACTION,//2F6
        VICIOUS_HAMMER,
        LOGOUT_GIFT,
        TOURNAMENT,
        TOURNAMENT_MATCH_TABLE,
        TOURNAMENT_SET_PRIZE,
        TOURNAMENT_UEW,
        TOURNAMENT_CHARACTERS,
        WEDDING_PROGRESS,
        WEDDING_CEREMONY_END,
        PACKAGE_OPERATION,//359
        CS_CHARGE_CASH,
        CS_EXP_PURCHASE,
        GIFT_RESULT,
        CHANGE_NAME_CHECK,
        CHANGE_NAME_RESPONSE,
        CS_UPDATE,//35B
        CS_OPERATION,//35C
        CS_MESO_UPDATE,//35F
        //0x314 int itemid int sn
        CASH_SHOP,//372
        CASH_SHOP_UPDATE,//373
        GACHAPON_STAMPS,
        FREE_CASH_ITEM,
        CS_SURPRISE,
        XMAS_SURPRISE,
        ONE_A_DAY,
        NX_SPEND_GIFT,
        RECEIVE_GIFT,//new v145
        RANDOM_CHECK,//25E
        KEYMAP,//37C
        PET_AUTO_HP,//377
        PET_AUTO_MP,//378
        PET_AUTO_CURE,//379
        START_TV,//37A
        REMOVE_TV,//37B
        ENABLE_TV,//37C
        GM_ERROR,
        ALIEN_SOCKET_CREATOR,
        GOLDEN_HAMMER,
        BATTLE_RECORD_DAMAGE_INFO,
        CALCULATE_REQUEST_RESULT,
        BOOSTER_PACK,
        BOOSTER_FAMILIAR,
        BLOCK_PORTAL,
        NPC_CONFIRM,
        RSA_KEY,
        LOGIN_AUTH,
        PET_FLAG_CHANGE,
        BUFF_BAR,
        GAME_POLL_REPLY,
        GAME_POLL_QUESTION,
        ENGLISH_QUIZ,
        FISHING_BOARD_UPDATE,
        BOAT_EFFECT,
        FISHING_CAUGHT,
        SIDEKICK_OPERATION,
        FARM_PACKET1,
        FARM_ITEM_PURCHASED,
        FARM_ITEM_GAIN,
        HARVEST_WARU,
        FARM_MONSTER_GAIN,
        FARM_INFO,
        FARM_MONSTER_INFO,
        FARM_QUEST_DATA,
        FARM_QUEST_INFO,
        FARM_MESSAGE,//36C
        UPDATE_MONSTER,
        AESTHETIC_POINT,
        UPDATE_WARU,
        FARM_EXP,
        FARM_PACKET4,
        QUEST_ALERT,
        FARM_PACKET8,
        FARM_FRIENDS_BUDDY_REQUEST,
        FARM_FRIENDS,
        FARM_USER_INFO,//388
        FARM_AVATAR,//38A
        FRIEND_INFO,//38D
        FARM_RANKING,//38F
        SPAWN_FARM_MONSTER1,//393
        SPAWN_FARM_MONSTER2,//394
        RENAME_MONSTER,//395
        STRENGTHEN_UI,//402
        //Unplaced:
        DEATH_COUNT,

        REDIRECTOR_COMMAND,
	UNKNOWN;

	private int code = -2;

	public void setValue(int code) {
		this.code = code;
	}

	@Override
	public int getValue() {
		return code;
	}
	
	public static Properties getDefaultProperties() throws FileNotFoundException, IOException {
		Properties props = new Properties();
		FileInputStream fileInputStream = new FileInputStream(System.getProperty("net.sf.odinms.sendops"));
		props.load(fileInputStream);
		fileInputStream.close();
		return props;
	}
	
	public static SendPacketOpcode getByType(int type) {
		for (SendPacketOpcode l : SendPacketOpcode.values()) {
			if (l.getValue() == type) {
				return l;
			}
		}
		return UNKNOWN;
	}
	
	public static SendPacketOpcode getByName(String name) { 
	    for (SendPacketOpcode l : SendPacketOpcode.values()) {
		if (l.name().equalsIgnoreCase(name)) {
		    return l;
		}
	    }
	    return UNKNOWN;
	}

	static {
		try {
			ExternalCodeTableGetter.populateValues(getDefaultProperties(), values());
		} catch (IOException e) {
			throw new RuntimeException("Failed to load sendops", e);
		}
	}
}
